package com.pb.infra.param.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 导入配置管理
 * @author liudebao
 * @date 2021/02/22
 */
@Mapper
@Repository
public interface ImportConfigMapper {

    /**
     * 分页查询
     *
     * @param paramMap 请求参数
     * @return
     */
    List<Map<String, Object>> selectByPage(Map<String, Object> paramMap);

    /**
     * 总条数
     * @param paramMap
     * @return
     */
    Long selectByPageCount(Map<String, Object> paramMap);

    /**
     * 下拉配置菜单
     * @return 集合
     */
    List<Map<String,String>> getImportConfigList();

    /**
     * 获取数据库用户
     *
     * @param appMap 请求参数
     * @return
     */
    List<Map<String,Object>> getBaseUserList(Map<String, Object> appMap);

    /**
     * 查询源表字段集合
     * @param appMap
     * @return
     */
    List<Map<String,Object>> getColList(Map<String, Object> appMap);

    /**
     * 查询字段函数
     * @return
     */
    List<Map<String,Object>> selFunc();

    /**
     * 数据源字段
     * @param appMap
     * @return
     */
    List<Map<String,Object>> selSourceData(Map<String, Object> appMap);

    /**
     * 检查规则
     * @param appMap
     * @return
     */
    List<Map<String,Object>> selCheckData(Map<String, Object> appMap);

    /**
     * 字段映射
     * @param appMap
     * @return
     */
    List<Map<String,Object>> colImpData(Map<String, Object> appMap);

    /**
     * 映射表序号
     * @param appMap
     * @return
     */
    Integer selMaxSeq(Map<String, Object> appMap);

    /**
     * 查主键
     * @param appMap
     * @return
     */
    List<Map<String,Object>> selPkData(Map<String, Object> appMap);

    /**
     * 保存导入配置
     * @param appMap
     */
    void insertData(Map<String, Object> appMap);

    /**
     * 删除导入配置
     * @param appMap
     */
    void delAllData(Map<String, Object> appMap);

}
